package com.hk.commons.util;

import org.apache.commons.text.StringEscapeUtils;

/**
 * @author Kevin
 */
public interface StringEscapeHandler {

    default String escape(String str) {
        return str;
    }

    default String unescape(String str) {
        return str;
    }

    enum EnumStringEscapeHandler implements StringEscapeHandler {

        DEFAULT,

        HTML() {
            @Override
            public String escape(String str) {
                return StringUtils.isEmpty(str) ? str : StringEscapeUtils.escapeHtml4(str);
            }

            @Override
            public String unescape(String str) {
                return StringUtils.isEmpty(str) ? str : StringEscapeUtils.unescapeHtml4(str);
            }
        };
    }
}
